#pragma once

#include "Containers/Vector.h"
#include "Containers/ForwardLinkedList.h"

class RObject;
class CType;

//detect TSharedObjectPtr circular reference and delete the circle
class CGarbageCollector
{
public:
    void GarbageCollect();

protected:

    void TryMarkAsReachable(RObject* InObject);
};